package com.niit.notification.entity;

import java.time.LocalDateTime;

/**
 * 通知实体类
 */

public class Notification {
    // 通知类型常量
    public static final int TYPE_LIKE = 1;     // 点赞通知
    public static final int TYPE_COMMENT = 2;  // 评论通知
    public static final int TYPE_FOLLOW = 3;   // 关注通知
    
    // 资源类型常量
    public static final int RESOURCE_TYPE_ACTIVITY = 1;  // 动态
    public static final int RESOURCE_TYPE_COMMENT = 2;   // 评论

    private Long id;                // 通知ID
    private Long receiverId;        // 接收者用户ID
    private Long senderId;          // 发送者用户ID
    private Integer type;           // 通知类型：1-点赞，2-评论，3-关注
    private String content;         // 通知内容
    private Long resourceId;        // 资源ID（动态ID、评论ID等）
    private Integer resourceType;   // 资源类型：1-动态，2-评论
    private Boolean isRead;         // 是否已读：false-未读，true-已读
    private LocalDateTime createTime; // 创建时间
    private LocalDateTime updateTime; // 更新时间

    // Getters and Setters
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getReceiverId() {
        return receiverId;
    }

    public void setReceiverId(Long receiverId) {
        this.receiverId = receiverId;
    }

    public Long getSenderId() {
        return senderId;
    }

    public void setSenderId(Long senderId) {
        this.senderId = senderId;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public Long getResourceId() {
        return resourceId;
    }

    public void setResourceId(Long resourceId) {
        this.resourceId = resourceId;
    }

    public Integer getResourceType() {
        return resourceType;
    }

    public void setResourceType(Integer resourceType) {
        this.resourceType = resourceType;
    }

    public Boolean getIsRead() {
        return isRead;
    }

    public void setIsRead(Boolean isRead) {
        this.isRead = isRead;
    }

    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }

    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }
}